home *** CD-ROM | disk | FTP | other *** search
- ; ====================================================================
- ;
- ; AutoLISP Concepts May 1987. System Variables & Time Keeping
- ; Bill Kramer
- ;
- ;
- ; Listing 1. CDATE: Returns the current date and time in a string.
- ;
- (defun Cdate ( / CD)
- (setq CD (rtos (getvar "CDATE") 2 6))
- (strcat (substr CD 5 2) "/" (substr CD 7 2) "/" (substr CD 3 2) " "
- (substr CD 10 2) ":" (substr CD 12 2) ":" (substr CD 14 2)))
- ;
- ;
- ; Listing 2. TIMER: Returns the interval time every other call.
- ; Elapsed time in fractions of a day.
- ;
- (defun Timer ( / ELPS)
- (if (null TMON)
- (setq TMON (getvar "DATE") ELPS nil)
- (setq ELPS (- (getvar "DATE") TMON) TMON nil))
- ELPS)
- ;
- ;
- ; Listing 3. AUTOSAVE: Automatic save of the drawing file when ever
- ; a set time increment of 15 minutes has passed
- ; betweens calls to the AUTOSAVE command.
- ; Add to front of several (not all) menu buttons.
- ;
- (defun C:AutoSAVE ()
- (if (null Tsaved) (setq Tsaved (getvar "DATE")))
- (if
- (> (* (- (getvar "DATE") Tsaved) 1440.0) 15.0)
- (progn
- (command "SAVE" "")
- (setq Tsaved (getvar "DATE")))))
- ;
- ;
- ; Listing 4. TIME: Returns the time in a string format given
- ; the Julian time.
- ;
- (defun Time (JDT) ; JDT is Julian Date/Time
- (setq JDT (- JDT (fix JDT))
- HH (* JDT 24.0)
- MM (* (- HH (fix HH)) 60.0)
- SS (* (- MM (fix MM)) 60.0))
- (strcat (itoa (fix HH)) ":"
- (if (< (fix MM) 10) "0" "") (itoa (fix MM)) ":"
- (if (< (fix SS) 10) "0" "") (itoa (fix SS))))
- ;
- ;
- ; Listing 5. C:LOG Log is a program that builds a time log
- ; program for activities currently being
- ; performed.
- ;
- (defun C:LOG ()
- (if (null Tstart)
- (progn
- (if (null O-Name) (setq O-Name (getstring T "\nEnter your name:")))
- (setq Temp
- (if (null Proj) (getstring T "\nProject ID:")
- (getstring T (strcat "\nProject ID <" Proj "> :"))))
- (if (null Proj) (setq Proj ""))
- (if (/= "" Temp) (setq Proj Temp))
- (setq Temp
- (if (null Actv) (getstring T "\nActivity:")
- (getstring T (strcat "\nActivity <" Actv "> :"))))
- (if (/= "" Temp) (setq Actv Temp))
- (if (null Actv) (setq Actv ""))
- (setq Tstart (cdate))
- (timer))
- (progn
- (setq Tstart (strcat "Start: " Tstart " Stop: " (cdate)) Elsp (timer))
- (if LOG-FH
- (write-line (strcat O-name ", " Proj ", " Actv "\n" Tstart
- " Elapsed: " (time Elsp)) LOG-FH)
- (write-line (strcat O-name ", " Proj ", " Actv "\n" Tstart
- " Elapsed: " (time Elsp))))
- (setq Tstart nil Elsp nil))))
- ;
- (defun C:Log-On ()
- (setq FN (getstring "\nLog file name <LOG.LOG>:"))
- (if (= FN "") (setq FN "LOG.LOG"))
- (setq LOG-FH (open FN "w"))
- (setq FN " Log File Opened. Type LOG to start clock."))
- ;
- (defun C:Log-Off ()
- (setq LOG-FH (close LOG-FH))
- (prompt "\nEnding current drawing session.")
- (command "END"))